Multi-platform optimization model

ABSTRACT

An optimization system for networks that use multiple different devices having different combinations of hardware and software (i.e., platforms). The system accurately assesses, controls and optimizes performance of such networks. The invention provides an efficient user interface for installing, configuring and operating various features of the optimization system. Intelligence objects operate at the server node level to dynamically analyze system processes at each server node. The analysis of system processes is extensive and includes hardware, software, operating system and communications. One feature allows an object to generate a number representing a local utilization value. The local utilization value is a measure of one or more performance factors in the platform hosting the object. The local utilization value can be passed to another platform system hosting a second intelligence object. The second intelligence object can generate its own local utilization value or can combine its local utilization value with the passed value to create a composite utilization value that reflects performance of both platforms. Where different values are from different platforms, the system resolves, adjusts, or normalizes the values to achieve a composite value.

CLAIM OF PRIORITY

[0001] This application claims priority from U.S. Provisional PatentApplication No. 60/243,783, filed Oct. 26, 2000.

CROSS-REFERENCES TO RELATED APPLICATIONS

[0002] This application is related to the following co-pendingapplications, each of which is incorporated by reference as if set forthin full in this application:

[0003] U.S. Patent Application entitled “System-Wide OptimizationIntegration Model” (020897-000110US) filed on Oct. 12, 2001, Ser. No.______ [TBD]; U.S. Patent Application entitled “Aggregate SystemResource Analysis and Diagnostics” (020897-000130US) filed on ______Ser. No. ______ [TBD]; U.S. Patent Application entitled “CorrelationMatrix-Based on Autonomous Node and Net Analysis Over DisparateOperating Systems” (020897-000140US) filed on ______ Ser. No. ______[TBD]; and U.S. Patent Application entitled “Merit-Based Metric Analysisand Diagnostics of System Resource Model” (020897-000150US) filed on______ Ser. No. ______ [TBD].

BACKGROUND OF THE INVENTION

[0004] Digital computer networks, such as the Internet, are now usedextensively in many aspects of commerce, education, research andentertainment. Because of the need to handle high volumes of traffic,many Internet sites are designed using several groups of servercomputers. An example of a site network system is shown in FIG. 1.

[0005] In FIG. 1, network system 10 includes four major tiers. These arecommunications tier 12, web tier 14, application tier 16 and databasetier 18. Each tier represents an interface between a group of servercomputers; or other processing, storage or communication systems. Eachinterface handles communication between two groups of server computers.Note that the tiers are significant in that they represent thecommunication protocols, routing, traffic control and other featuresrelating to transfer of information between the groups of servercomputers. As is known in the art, software and hardware is used toperform the communication function represented by each tier.

[0006] Server computers are illustrated by boxes such as 20. Database 22and Internet 24 are represented symbolically and can contain any numberof servers, processing systems or other devices. A server in a grouptypically communicates with one or more computers in adjacent groups asdefined and controlled by the tier between the groups. For example, arequest for information (e.g., records from a database) is received fromthe Internet and is directed to server computer 26 in the Web-ComServers group. The communication takes place in communications tier 12.

[0007] Server computer 26 may require processing by multiple computersin the Application Servers group such as computers 20, 28 and 30. Such arequest for processing is transferred over web tier 14. Next, therequested computers in the Application Servers group may invokecomputers 32, 34, 36 and 38 in the Database Servers group viaapplication tier 16. Finally, the invoked computers make requests ofdatabase 22 via database tier 18. The returned records are propagatedback through the tiers and servers to Internet 24 to fulfill the requestfor information.

[0008] Of particular concern in today's large and complex networksystems is the performance monitoring and optimization of the system.The task of providing efficient monitoring information is made verydifficult when a network uses multiple different sets of hardware andsoftware (i.e., platforms). For example, database server 32 might be anIntel-brand processor running Microsoft's Access database underMicrosoft's NT operating system. Database server 34 can be a Sunplatform running an Oracle database. Application servers can includeIntel/Microsoft, Unix, or other platforms. Similarly, web page serverscan be any of a number of platforms. In general, any platform, or othercombination of hardware and software (including operating systems,application programs, applets, plug-ins, dynamic link libraries,routines, or other processes) might be used at any point in a networksystem.

[0009] Obtaining and analyzing performance and resource utilizationcharacteristics is very difficult in multi-platform networks. This isbecause performance and usage parameters will not have the same meaningin different environments in different platforms.

[0010] Thus, it is desirable to provide a system that improves upon theprior art.

BRIEF SUMMARY OF THE INVENTION

[0011] In one embodiment the invention provides an optimization systemfor networks that use multiple different devices having differentcombinations of hardware and software (i.e., platforms).

[0012] The system accurately assesses, controls and optimizesperformance of such networks. The invention provides an efficient userinterface for installing, configuring and operating various features ofthe optimization system. Intelligence objects operate at the server nodelevel to dynamically analyze system processes at each server node. Theanalysis of system processes is extensive and includes hardware,software, operating system and communications.

[0013] One feature allows an object to generate a number representing alocal utilization value. The local utilization value is a measure of oneor more performance factors in the platform hosting the object. Thelocal utilization value can be passed to another platform system hostinga second intelligence object. The second intelligence object cangenerate its own local utilization value or can combine its localutilization value with the passed value to create a compositeutilization value that reflects performance of both platforms. Wheredifferent values are from different platforms, the system resolves,adjusts, or normalizes the values to achieve a composite value.

[0014] In one embodiment the invention provides a method for monitoringthe performance of a digital networked system, wherein the systemincludes first and second platforms. The method comprising generating afirst value indicating a characteristic of operation of the firstplatform; transferring the first value to the second platform; obtaininga second value indicating a characteristic of operation of the secondplatform; and combining the first and second values into a compositevalue by adjusting one of the first or second values to account for adifference in operation characteristics between the first and secondplatforms.

BRIEF DESCRIPTION OF THE DRAWINGS

[0015]FIG. 1 shows a prior art network system;

[0016]FIG. 2A shows intelligence objects and performance value passingin the present invention;

[0017]FIG. 2B illustrates architectural components of the presentinvention;

[0018]FIG. 2C illustrates a network system with multiple platforms;

[0019]FIG. 3A illustrates a user interface display to set up noderesource pools;

[0020]FIG. 3B illustrates a user interface where a user has addedspecific nodes;

[0021]FIG. 3C illustrates the representation of intelligence objects;

[0022]FIG. 3D illustrates further organizing of nodes in NRPs intoFunctional Resource Pools;

[0023]FIG. 3E illustrates establishing connectivity and data flow amongNRPs, FRPs and nodes;

[0024]FIG. 3F illustrates a connection made between FRP 1 and FRP 2;

[0025]FIG. 3G shows a subnetwork;

[0026]FIG. 3H illustrates a screen shot of a user interface display toallow a user to set-up a DASPO;

[0027]FIG. 4A illustrates the Node Listing console;

[0028]FIG. 4B illustrates the Graphic View console;

[0029]FIG. 4C illustrates the Monitor console;

[0030]FIG. 4D illustrates a series graph of the Monitor Console;

[0031]FIG. 4E illustrates a balance graph of the Monitor Console;

[0032]FIG. 4F illustrates the History Monitor;

[0033]FIG. 5A shows the Redirector Deployment and Installation window;

[0034]FIG. 5B illustrates the redirector's Remote Set-Up window;

[0035]FIG. 5C shows the File Transfer Settings for a file transferprotocol tab;

[0036]FIG. 5D shows a destination folder where redirector files aretransferred;

[0037]FIG. 5E shows a destination folder specified when using a sharednetwork drive to transfer files;

[0038]FIG. 5F shows dialog pertaining to launching a remote set-up usinga telnet protocol;

[0039]FIG. 5G illustrates a portion of the user interface for preparinga redirector;

[0040]FIG. 5H shows an HTTP Redirector Configuration screen;

[0041]FIG. 5I shows a Create Connection dialog;

[0042]FIG. 5J shows a Load Data Link File dialog;

[0043]FIG. 5K shows the Data Link Properties window;

[0044]FIG. 5L shows the Confirmation dialog;

[0045]FIG. 5M shows the Confirmation dialog with security turned on;

[0046]FIG. 5N shows the SLO Deployment and Installation window;

[0047]FIG. 5O shows the Remote SLO Set-up window;

[0048]FIG. 5P is a first illustration specifying controls and parametersfor transfer and remote execution functions;

[0049]FIG. 5Q is a second illustration specifying controls andparameters for transfer and remote execution functions;

[0050]FIG. 5R is a third illustration specifying controls and parametersfor transfer and remote execution fimctions; and

[0051]FIG. 5S is a fourth illustration specifying controls andparameters for transfer and remote execution functions.

DETAILED DESCRIPTION OF THE INVENTION

[0052] A preferred embodiment of the present invention is incorporatedinto products, documentation and other systems and materials created anddistributed by MetiLinx, Inc. as a suite of products referred to as“Metilinx iSystem Enterprise” system. The Metilinx system is designed tooptimize digital networks, especially networks of many computer serversin large Internet applications such as technical support centers, webpage servers, database access, etc.

[0053] The system of the present invention uses software mechanismscalled “intelligence objects” (IOs) executing on the various servers,computers, or other processing platforms, in a network. The intelligenceobjects are used to obtain information on the performance of a processor processes, hardware operation, resource usage, or other factorsaffecting network performance. Values are passed among the intelligenceobjects so that a composite value that indicates the performance of agreater portion of the network can be derived.

[0054]FIG. 2A illustrates intelligence objects and value passing. InFIG. 2A, intelligence objects such as 102 and 104 reside in computerservers. Any number of intelligence objects can reside in a servercomputer and any number of server computers in the n-tiered system canbe equipped with one or more intelligence objects. A first type ofintelligence object is a software process called a system level object(SLO) that can monitor and report on one or more aspects of otherprocesses or hardware operating in its host computer server. A secondtype of intelligence object, called a transaction level object (TLO) isdesigned to monitor transaction load with respect to its host computeror processes executing within the host computer.

[0055] In one embodiment, IO 102 measures a performance characteristicof its host computer and represents the characteristic as a binaryvalue. This value is referred to as the “local” utilization value sinceit is a measure of only the host computer, or of transaction informationrelating to the host computer. The local utilization value is passed toIO 104. IO 104 can modify the passed value to include a measurement ofits own host computer. The modified value is referred to as a“composite” utilization value. The composite utilization value can, inturn, be passed on to other intelligence objects that continue to buildon, or add to, the measurements so that performance across multiplecomputer, tiers, operating systems, applications, etc., is achieved.

[0056] Ultimately, the utilization value, or values, is passed on toother processes which can display the result of the combinedmeasurements to a human user, use the result to derive other results,use the result to automate optimization of the n-tiered system, or usethe result for other purposes. One aspect of the invention provides forredirecting processes and interconnections on the network based on theassessed utilization values of the computers, or nodes, in order toimprove, or optimize, network performance. The processes that performthe redirection are referred to as “process redirection objects”(PROSE).

[0057] Note that although the invention is sometimes discussed withrespect to a multi-tiered server arrangement that any arrangement ofservers, computers, digital processors, etc., is possible. The term“processing device” is used to refer to any hardware capable ofperforming a function on data. Processing devices include servers,computers, digital processors, storage devices, network devices,input/output devices, etc. Networks need not be in a multi-tieredarrangement of processing devices but can use any arrangement, topology,interconnection, etc. Any type of physical or logical organization of anetwork is adaptable for use with the present invention.

[0058]FIG. 2B illustrates one possible arrangement of more specificcomponents of the present invention. Note that the term “component” asused in this specification includes any type of processing device,hardware or software that may exist or may be executed within or by adigital processor or system.

[0059] Systems such as those illustrated in FIGS. 1, 2A and 2B, alongwith virtually any type of networked system, can be provided with IOs.In a preferred embodiment, the IOs are installed on each server in thenetwork in a distributed peer-to-peer architecture. The IOs, along withaggregation software, discussed below, measure real-time behavior of theservers components, resources, etc. to achieve an overall measure of thebehavior and performance of the network. A preferred embodiment ratesand aggregates network components using a system-wide model discussed inthe related applications discussed, above.

[0060] The preferred embodiment collects data on low-level system andnetwork parameters such as CPU utilization, network utilization,latency, etc. The data is produced and shared in small four-byte values.In a hierarchy set up by an administrator, or automatically configuredby the system, a value is combined with other values to achieve acomposite value. The composite value is then passed along the hierarchyand used to obtain further composited values so that overall systemperformance is ultimately provided in the composited values.

[0061] One problem with using composite values that are maintained fromnode-to-node is that a network may have multiple different hardware andsoftware components at different points in the system. Typically,hardware for executing software, combined with operating system softwareis referred to as a “platform.” For purposes of this application,“platform” refers to any combination of hardware and software, orportion thereof, used to allow other software, or processes, includingthe nodes of the present invention, to execute. In this sense, any givenplatform, may change frequently over time as processes are terminatedand started, hardware is reconfigured, etc.

[0062]FIG. 2C illustrates a network system with multiple platforms.

[0063] In FIG. 2C, network system 150 includes various components,including server computers shown as blocks. Each server computer can usedifferent hardware such as different numbers and types of centralprocessing units (CPUs), amounts and types of memory, architecture,peripherals, etc.

[0064] Different software can also be used. For example, server 152executes the Windows 2000 operating system while server 154 executesWindows NT and server 156 executes Linux. Other servers are shownexecuting different application programs and operating systems.Naturally, any number and type of hardware and software can be employed.Further, the network configuration can vary widely from that shown inFIG. 2C. In general, any network configuration can be used with thepresent invention.

[0065] Values which are intended to convey the same meaning may, infact, have different meanings in association with different platforms.For example, processor speed, instructions per second, interrupts,input/output operations, number and priority of threads, number and typeof forked processes, memory management, block allocation, etc. havedifferent effective meanings depending on the platform that is beingmeasured or reported. Thus, it is important to adjust, resolve,normalize or homogenize, values with respect to the different platformsso that the values can be combined, or composited, as described, below,for more effective reporting and monitoring.

[0066] For example, one parameter that is accumulated is the number ofblocks allocated by the operating system over time. This parameter ismeaningful since it reflects the memory utilization of a component, orplatform, in the system. However, different operating systems may usedifferent size blocks so just keeping track of the number of blockswould give inaccurate results. Other factors which lead to incompatiblecomparisons and use of the block allocation parameter is the number ofblocks available in the system, the overhead involved (e.g., processorcycles, memory, etc.) in performing the block allocation, etc.

[0067] One embodiment of the invention stores, e.g., the memory blocksize for different platforms. When a block allocation parameter isreceived from a platform (e.g., as part of a LNV or CNV, discussed,below) the parameter is adjusted according to the block size. Forexample, where a block allocation parameter comes from a platform wherethe block size is one-half the block size on a platform executing a nodethat receives the parameter, the node adjusts the parameter by a factorof two to account for the difference between the two platforms. In thismanner, the parameter values can be combined, or composited, to achievethe benefits discussed below.

[0068] A network set up with the IOs and other monitoring, analysis andoptimization tools as discussed herein is referred to as a DynamicAggregate System Process Optimization (DASPO) network. There are threebasic phases of operating a DASPO to achieve network improvement oroptimization. These phases are (1) set-up, (2) analysis and (3)optimization. In a preferred embodiment, the system of the presentinvention provides various user tools, including console interfaces, toallow a human user to participate in the different phases. However,provision is also made for automating the different phases to varyingdegrees.

[0069] The operation and implementation of the three phases is heavilydependent on the system-wide model employed by the present invention.The system-wide model is discussed, below, in connection with the threephases and user interfaces for controlling the three phases.

[0070] Set-Up

[0071] There are five basic steps in setting up a DASPO network, asfollows:

[0072] Define Node Resource Pools (NRPs)

[0073] Add Nodes

[0074] Install Intelligence Objects on Selected Nodes

[0075] Define Functional Resource Pools (FRPs); and

[0076] Establish Connectivity and Data Flow

[0077]FIG. 3A illustrates a user interface display to set up noderesource pools. In FIG. 3A, node pools are displayed as ovals withlabels. NRPs are used to group nodes for organizational purposes. NRPsare used in place of the tier illustration approach of FIGS. 1A and 2A.NRPs can be used to create the equivalent of a tiered structure, or theycan be used to create other structures of nodes. FIG. 3A shows a WebServer Pool and a Data Server Pool. An Application Server Pool, orother, user defined pool, can be created and labeled. Any number ofpools can be defined.

[0078]FIG. 3B illustrates a user interface where a user has addedspecific nodes to the defined NRPs. Nodes can be added by selecting themindividually from an existing domain, or by providing specific internetprotocol (IP) addresses. A preferred embodiment of the invention usesnodes that follow standard internet conventions such as machine, or IP,addresses. However, other embodiments may use other protocols,standards, etc., to define nodes. Node names can be generic, as shown inFIG. 3B, or they can be given unique names by a user, or assignedautomatically. Naturally, any number and type of node can be assigned toa pool. The pool/node hierarchy is displayed and manipulated much like afamiliar file management system.

[0079]FIG. 3C illustrates the representation of intelligence objects(IOs). IOs are defined and associated with nodes. Two types of IOs areprovided in a preferred embodiment. These are the System Level Object(SLO) and Transaction Level Object (TLO). Each IO is typicallyidentified by the icon to the left of the descriptive text. The icon isplaced adjacent to a node in which, or to which, the IO corresponds.During operation, the IO gathers information on the operation andresource use of components at the node.

[0080] SLOs can be grouped into pools. The preferred embodiment providestwo types of pools as (1) Functional Resource Pools to organize SLOs fornodes that support a common application so that nodes with likefunctionality are grouped; and (2) Node Resource Pools for organizingFRPs and SLOs for nodes that provide a common service. Links betweenpools and nodes indicate where functional relationships exist. NRPs andFRPs link together to provide system process flow and to define subnetworks for optimization calculations.

[0081]FIG. 3D illustrates organizing of nodes in NRPs into FunctionalResource Pools.

[0082] Once NRPs have been created and nodes assigned, the NRPs can befurther subdivided into Funcitonal Resource Pools (FPRs). The FRPsprovide a refinement of node function by allowing nodes to be groupedaccording to specific roles assigned to the FRPs (i.e., Managerial Loginservers, Staff Login servers, etc). One or more FRPs can be createdinside a NRP, as shown in FIG. 3D. In a preferred embodiment, only SLOand TLO nodes can belong to an FRP.

[0083]FIG. 3E illustrates establishing connectivity and data flow amongNRPs, FRPs and nodes.

[0084] An important step in configuring a network involves determiningthe route that transactions will take when they move through the system.Routes are determined by the way pools and nodes are linked together.There are three different levels at which links can be defined, asfollows:

[0085] a. Node Resource Pool to Node Resource Pool

[0086] b. Functional Resource Pool to Functional Resource Pool

[0087] c. Node to Node

[0088] In a DASPO network, NRPs represent the lowest level of detail andnodes represent the highest level. Connections made at higher levels ofdetail will override the connections made at lower levels. Linking alsohas certain important implications. For example, if two NRPs are linked,the inference is made that every FRP and every node within the two poolsis connected, as shown in FIG. 3E.

[0089] Network management is simplified by allowing connections to bemade at different levels. Initial connections can be made quickly andsimply when establishing an initial network transaction process flowsince higher level connections automatically define lower-levelconnections. For example, a pool-to-pool connection automaticallydefines lower FRP and node connections with respect to FRPs and nodeswithin the connected pools. As more network fine-tuning becomesnecessary, a refinement of the initial set of links, at a more detailedlevel, is possible (i.e. node-to-node).

[0090] Defining network connections results in the creation of DASPOsubnetworks. A DASPO subnetwork is a specific relationship definedbetween nodes that are linked together across Functional Resource Pools.Subnetworks can, but need not, have a correlation to the physical orlogical network organization. For example, subnetworks can follow themulti-tiered design discussed above where each of three subnetworkscorresponds to web, application and database tiers. The concept ofsubnetworking allows a user to flexibly define transaction flows acrossa network when calculating ideal system optimization.

[0091]FIG. 3F illustrates a connection made between FRP 1 and FRP 2.This creates a subnetwork among nodes associated with the FRPs. Asubnetwork exists from the “A” node as shown in FIG. 3G. The “A”subnetwork includes nodes B and C from FRP 2.

[0092] When nodes are grouped together in Functional Resource Pools,their SLOs and TLOs communicate Local Node Value (LNV) and otherintelligence object information to each other. As a result of thiscommunication, each node is aware of the value of every other node inits FRP and, if queried, can identify the Best Node. The Best Node isdefined as the server within a particular FRP that is able to handle asystem transaction with the greatest efficiency at a given moment. Adetailed description of value formats, value passing, composite valuesand other uses of values can be found in related patent application (3),cited above.

[0093] From the LNV of a first node, and from the LNVs of other nodesrelated to the first node in a subnetwork, a Composite Node Value (CNV)is calculated. A preferred embodiment of the invention uses normalizedweights to rank the contribution of the LNV and CNV of every node in thesubnetwork associated with the first node. The preferred embodimenttakes network latency into account to modify passed CNV and/or LNVvalues when the values are passed to different nodes.

[0094] One feature of a preferred embodiment is that the nodes gatherdata in the form of CNVs and LNVs and the data is accumulated by acentral console, or computer system, operable or accessible to a humanuser for monitoring and control. This approach allows a administrator tomonitor, log, analyze, adjust and optimize separate aspects of a networksystem. Past, recent and current performance of the network is provided.The network can be automatically instructed by the console (or anothersystem or process) to act in accordance with measured parameters (e.g.,based on the CNV and LNV data) to redirect data transfers to the bestavailable resources, nodes, or other components. This approach ofdistributed, hierarchical, peer-to-peer value gathering to a centralconsole provides efficient and accurate system management.

[0095] When DASPO subnetworks are created, an FRP process hasinformation on the best node to utilize at any point in time. The “bestnode” may not necessarily be the the least utilized node. By providing aglobal view of system performance, an FRP process can determine nodeswhich, if routed to, would provide overall system performanceimprovement. Similarly, an FRP is aware of best nodes for routing orother utilization in the FRP's subnetwork, allowing for faster reroutingdecisions and improved resource utilization.

[0096]FIG. 3H illustrates a screen shot of a user interface display toallow a user to set-up a DASPO.

[0097] In FIG. 3H, the features discussed above are shown, including theuse of pools, FRPs and SLOs interconnected to form subnetworks. Area 120is used to set up subnetworks. Area 122 is used to defineinterconnections. Area 124 is used to provide details on objects and toallow a user to easily select objects for use.

[0098] Analysis

[0099] Analysis includes monitoring and administration functions. Userscan view results of node data-gathering which indicates the performanceof system components, transfers, etc. Various administrative functionscan be performed such as saving and modifying configurations, schedulingevents,

[0100] Four consoles, or basic types of interfaces, are used to helpdirect network optimization and manage the administration. The consolesare as follows:

[0101] 1. Node Listing Console

[0102] 2. Graphic View Console

[0103] 3. Monitor Console

[0104] 4. History Monitor Console

[0105]FIG. 4A illustrates the Node Listing console.

[0106] The Node Listing console provides a list of all the network nodesthat are part of the current loaded network configuration, as well asthe current status of those nodes. The console is also the location fromwhich user access can be managed; different network configurations canbe saved and loaded; backups can be initiated, and Wizards, or automatedassistance, for redirectors and System Level Objects (SLOs) can bestarted.

[0107]FIG. 4B illustrates the Graphic View console.

[0108] The Graphic View console allows users to visually identify andmanipulate the various nodes, pools and connections in a DASPO networkin an easy-to-use graphical user interface.

[0109]FIG. 4C illustrates the Monitor console. The Monitor console is areal-time tracking feature that measures the available processingcapacity of selected nodes in DASPO network to help assess nodeperformance. The node information is displayed in a simple graph or barformat, and the data can be tracked and saved for future reference.

[0110] The Monitor console can provide several different graphs forvisual presentation of information.

[0111]FIG. 4D illustrates a series graph of the Monitor Console.

[0112] In the series graph, selected SLO and TLO nodes appear withstatistical values from 0 to 100 for each node at a given instant intime. The statistical value reflects the current load capacity of thenode. The higher the value, the more processing capability is availableto be utilized. A lower value indicates an overworked node that has alow processing capacity.

[0113] Host nodes that are selected to be monitored will appear in theHost graph. This graph performs identically to the Series graph.

[0114] The Percentage graph measures the statistic values of SLO, TLOand Host nodes together on the same graph. This graph performs similarlyto the Series and the Host graphs.

[0115]FIG. 4E illustrates a balance graph of the Monitor Console.

[0116] In the balance graph, statistical differences between the nodesis shown. Examples of types of differences that can be displayed includeaverage, variance, maximum, minimum etc. These variances are shownvisually on one or more bar graphs. A list of available balancevariables can be selected and applied by a user. This graph appearsbeneath the Series and the Host graph in the iSystem Enterprise monitor.Note that the Balance graph does not appear when a Mixed Series isselected.

[0117] Before node statistics or balance variables can be displayed inthe Monitor graphs, the nodes to be monitored must first be selected.There are two selector fields at the bottom of the Monitor screen shownin FIG. 4E. The left-hand selector field 132 is used for adding SLO, TLOor Host nodes. The right-hand selector field 134 is used to add balancevariables. (Note: the balance variable selector is not available when aMixed Series is selected).

[0118]FIG. 4F illustrates the History Monitor.

[0119] When network nodes are tracked using the Monitor feature thecaptured data is stored, for future reference, in a log file. This logfile can be accessed and displayed at any time using the History Monitorconsole. The History Monitor also provides a variety of features thatallows saved data to be manipulated, displayed and compared in a varietyof different ways. Note: In order to use the History Monitor feature,nodes must first be set up and tracked using the Monitor. For moreinformation, see Monitor Console.

[0120] The History Monitor provides several graphs similar to thosedescribed, above, for the Monitor Console.

[0121] The History Monitor includes a series graph where monitored SLOand TLO nodes appear. This graph displays a statistical value (from 0 to100) for each selected network node at a given instant in time. Thisstatistical value reflects the load capacity of the node. The higher thevalue, the more processing capability is available to be utilized. Alower value indicates an overworked node that has a low processingcapacity.

[0122] Monitored Host nodes will appear in the Host graph of the HistoryMonitor. This graph performs identically to the Series graph.

[0123] The Percentage graph of the History Monitor displays themonitored statistic values of SLO, TLO and Host nodes together on thesame graph. This graph performs identically to the Series and the Hostgraphs.

[0124] The statistical differences between the nodes (i.e. average,variance, maximum, minimum etc.) can be measured in the balance graph ofthe History Monitor. A list of available balance variables can beselected and applied by a user. This graph appears beneath the Seriesand the Host graph in the isystem Enterprise monitor. Note that theBalance graph does not appear when a Mixed Series is selected.

[0125] Before the node statistics that have been captured in the monitorcan be displayed in the History Monitor graphs, the nodes to bemonitored must first be selected. There are two selector fields at thebottom of the History Monitor screen of FIG. 4F. The left-hand selectorfield 136 is used for adding SLO, TLO or Host nodes. The right-handselector field 138 is used to add balance variables. (Note: the balancevariable selector is not available when a Mixed Series is selected).

[0126] Optimization

[0127] Part of the optimization process is accomplished by redirectingrequests and connections within Functional Resource Pools. This isachieved using data generated by SLO-nodes, which compute their ownstatistics and broadcast the results through the pools.

[0128] This way of implementing redirection is available to everyapplication implemented in-house. However, there are many pre-packagedapplications and objects commonly used, whose code cannot—and probablyshouldn't—be altered. These types of applications include web serversand COM-objects. Due to the different nature of requests and connectionsthat take place in a complex network system, specific objects musthandle redirection inside each class of calls. A preferred embodiment ofthe present invention includes objects for redirecting HTTP-requests andOLE DB-connections. However, other embodiments can employ other objectsin other environments and on other platforms such as HTTP in Java, DB inC++, etc., on Linux, Solaris, etc.

[0129] An HTTP Redirector is a Windows-based application (HTTPRedir.EXE)capable of receiving HTTP-requests and redirecting them to a selectedweb server according to some predefined selection criteria. Startingfrom a list of web servers and a selection method, this applicationgathers load-statistics and availability from the web servers andeffectively redirects the requests transparently to the requestingclient.

[0130] The HTTP Redirector can be used in different ways to accomplishits tasks. Its interaction with clients and web servers depends on theplace it's located, the port it's using for listening and the linksdefined on the accessed pages at the web servers. Issues regardingserver affinity, client sessions, etc, must be handled by the webadministrator.

[0131] OLE DB-Connection Redirector is a DCOM server packed into aWindows-based executable (OLEDBRedir.EXE). This object is able to keeptrack of the load-statistic of a set of database servers and to supply apredefined connection string corresponding to the selected databaseserver when requested. This redirector object needs to be alive tomonitor the database severs. Therefore, it's necessary that theapplication be manually started once it's installed. This represents adifference to commonly used automation servers that are automaticallyactivated upon client requests.

[0132] The redirector deployment and installation process consists offive main stages:

[0133] 1. Select nodes for redirector installation

[0134] 2. Specify server general settings for each node

[0135] 3. Specify file-transfer and remote-execution settings for eachnode

[0136] 4. Execute redirector installation procedure

[0137] 5. Configure the installed redirector

[0138] The remote installation mechanism is built around a Windowsapplication (RSLOSetup.EXE) and a set of auxiliary files that areactually moved to the target node to perform the installation. From thispoint another mechanism launches the installation process on the remotenode. For UNIX/Linux platforms, SLO will be installed as a daemon. ForWindows-based platforms, SLO will be installed as a regular applicationincluded in the Startup folder for every user.

[0139] 1. Selecting nodes for redirector installation

[0140]FIG. 5A shows the Redirector Deployment and Installation window.

[0141] By choosing the control” Select Functional Resource Pool” a listof available FRPs appears from the drop-down menu. “Add Redirector”allows the selection of the IP address for a node that is to bedesignated as a redirector. “Modify Redirector” allows an existing nodeto be reconfigured so that a different node takes its place as aredirector, or a different type of redirector (HTTP or DB) is used.“Remove Redirector” removes a server that is highlighted by the userfrom the Deployment and Installation window.

[0142] “Change configuration” allows the installed redirector to beconfigured for use once nodes have been selected as redirectors and thefile transfer and execution is complete. “Install All the Redirectors”is selected after nodes have been chosen for the installation ofredirectors. The Install operation takes the user to the RedirectorsRemote Setup window where the transfer and execution of redirector filescan commence.

[0143] 2. Specifying Server General Settings

[0144] Once nodes have been selected for redirector installation, theRedirectors Remote Setup window opens.

[0145]FIG. 5B illustrates the Redirectors Remote Setup window.

[0146] The Redirectors Remote Setup window is used to define theoperating system, file-transfer and remote-execution mechanisms for eachnode. (Nodes are referred to as Remote Servers in this window.)Selecting different file-transfer and remote-execution mechanisms willactivate corresponding tabs which will appear behind a General Settingstab, discussed below. These new tabs can require separate configuration,as discussed in detail in the next section. Changes to general settingsare reflected in the list of nodes in the left-hand Remote Server field.

[0147] Note that certain restrictions apply during this portion thesetup. For example, DCOM is only available to Windows platforms. In somecases, selecting the option “None” for an operation mechanism is useful.For example, if the corresponding files are already placed on a node(due to a previous attempt to install or because common drives areused), only remote execution is required.

[0148] 3. Specifying File-Transfer and Remote-Execution Settings

[0149] Depending on the file-transfer and remote-execution mechanismsthat were selected in previous steps, one or more new tabs appearsbehind a General Settings tab. Each tab can be “active” and brought tothe forefront by clicking on the tab. FIG. 5C shows the File TransferSettings for file-transfer protocol (FTP) tab. FTP settings requirespecifying the FTP username and password (if applicable) and the FTPdestination directory. By default an anonymous username and the Homedirectory are set.

[0150] When using SLO, the destination folder where the redirector fileswill be transferred is required, as shown in FIG. 5D. By default, thefiles will be transferred to the default remote SLO folder.

[0151] When using a shared network drive to transfer files, aDestination Folder must be specified, as shown in FIG. 5E. This folderpoints to a drive (local to the target node) that is shared along thenetwork and mapped locally (at a central point). Common functionalities,such as mapping a network drive or creating a new folder are included.Note that file-transfer operations are carried out using the currentuser credentials, which means the current user must have enough rightsto perform the operations.

[0152] When launching a remote setup using the telnet protocol, as shownin FIG. 5F, username and password are required. The Remote ExecutionFolder points to a local folder (on the remote server) where the setupfiles were moved during the file-transfer step.

[0153] Redirector configuration is the final step in preparing aredirector for use in a DASPO network. FIG. 5G illustrates a portion ofthe user interface for preparing a redirector.

[0154] A Redirector Listening Port is a port number used by theredirector to listen for HTTP requests. Port 80 is used by web serversto listen and by web browsers to connect. It is recommended that thisport number be used for the redirector if the redirector will beperforming as a web server. It is important to note that only oneapplication can be listening on one port, therefore the redirectorcannot coexist with a web server on the same computer if both arelistening through the same port. The Check It! button verifies that theselected port number is available, meaning no other local application iscurrently listening on this port. When configuring the redirector fromiSystem Enterprise, the Check it! button is disabled.

[0155] A Functional Resource Pool is the source list of web servers. TheSLO Address field refers to an SLO-node installed in one of thecomputers belonging to the pool. Statistics will be retrieved from asingle SLO instead of asking individually. To retrieve the list ofservers from the SLO-node the Get Servers button is pressed.

[0156] The Server Selection Method directs how servers are selected forredirection. Choices include a web server with Best Statistics or in aRound Robin fashion. Note that a server is not be selected if it doesn'tcontain the requested object, even if its turn has come up forredirection.

[0157] A list of web servers available for redirection is displayed.These are the web servers that might receive transaction requests. Webservers can be added, removed or modified using the displayed list. TheRemove Selected button removes a selected web server from the list. Theremoved server is not be included in any further redirection. The ClearAddress List button clears all web servers from the list. The Add Serverbutton adds a new web server to the list. The Modify Server buttonmodifies the parameters corresponding to a server in the list.

[0158] A preferred embodiment uses a DCOM server packed into aWindows-based executable process called an “OLE DB-ConnectionRedirector.” This object is able to keep track of the load-statistic ofa set of database servers and to supply a predefined connection stringcorresponding to the selected database server when requested. Thisredirector object must be active to monitor the database severs.Therefore, the application must be manually started once installed. Thisis different from commonly used automation servers that areautomatically activated upon client requests.

[0159] Instead of directly assigning connection strings to theirconnection objects, developers create a remote instance of theredirector and request a valid connection string from it. Using thisconnection string guarantees that the best available database server isselected.

[0160] The HTTP Redirector Configuration screen is shown in FIG. 5H.

[0161] The Functional Resource Pool area is the source list of data baseservers. The SLO Address field refers to an SLO-node installed in one ofthe computers belonging to the pool. Statistics are retrieved from asingle SLO instead of asking individually. To retrieve the list ofservers from the SLO-node the Get Servers button is pressed.

[0162] The Server Selection Method area indicates how servers areselected for redirection. Choices include a database server with theBest Statistic or Round Robin fashion. The Database Connection Listdisplays a list of database servers and connection strings included forredirection. These are the database servers that might receive theredirector connection requests. Items in the list can be added, removed,or modified.

[0163] The Remove Selected button removes the selected databaseconnection from the list. The removed connection is not included in anyfurther redirection. The Remove All button is used to remove allconnections from the list. The Add DB Connection button adds a databaseconnection to the list. The Modify DB Connection is used to modify theparameters corresponding to a connection in the list.

[0164] Once all modifications are introduced, a configuration can beupdated by pressing the OK button. Canceling the operation doesn'tmodify the current configuration.

[0165] After clicking on the Add DB Connection button, the CreateConnection dialog is shown in FIG. 5I. This dialog allows a new OLE DBconnection to a database server to be defined. Connection parametersinclude a connection string and the name of the server.

[0166] The connection string can be typed directly, loaded from aUniversal Data Link (UDL) file or edited using the corresponding systemdialog. Connection strings can be manually or automatically testedbefore saving to the current configuration. Automatic testing isperformed when the “Test database connection before save” box ischecked. The testing process attempts to open a database connectionusing the given connection string.

[0167] Note that there are situations when testing a connection doesn'tmake sense. This occurs when the redirector and the database server arelocated on different domains. Applications requesting a connection mightuse aliases to reach the database servers and these aliases can beunknown to the redirector.

[0168] If the connection string is loaded from a file, then the file isselected using the Load Data Link File dialog, shown in FIG. 5J. This isa common dialog oriented to search for UDL files.

[0169] Another possibility is to select the Edit Connection Stringbutton, which opens the Data Link Properties window shown in FIG. 5K.This dialog contains a wizard that allows a step-by-step definition ofthe properties.

[0170] After loading from a file or defining through the Data Linkwizard, the resulting connection string is loaded into a confirmationdialog, shown in FIG. 5L, which identifies the name of the provider, theparameters and the settings for security. FIG. 5L shows a confirmationdialog when security is turned off. The identification confirms thesettings made previously. To change the provider or the parameters, theModify Parameters button is pressed to return to the system wizard.Security settings can be modified directly in this dialog by selectingdifferent security settings and/or modifying the usemame and passwordassociated to the connection.

[0171]FIG. 5M shows the confirmation dialog with security turned on.

[0172] In FIG. 5M, once the OK button is pressed, control is returned tothe Create Connection dialog, containing the resulting definitions.

[0173] The process of modifying an existing database connection includessome of the same steps discussed previously. To launch the process, aconnection at the Configuration Dialog is selected and then the ModifyDB Connection button is pressed.

[0174] System Level Objects

[0175] Before system optimization is determined, the value of each nodeis measured. In order to collect these measurements, intelligenceobjects (IOs) are deployed across a DASPO network. These intelligenceobjects gather statistics on the processes and system loads that aregenerated at each server node. The format, formation and use of thevalues, statistics and node information is discussed in detail in theco-pending patent applications referenced, above. Node informationincludes CPU usage, size and usage statistics of memory and storagespace, bytes read/written per second, number of threads, number ofprocesses executing at the node, processor queue length, local responsetime and network response time. Note that many other types ofinformation about the node, node environment, node host, processor,etc., can be included. Also, not all of the listed node information needbe used in order to practice the present invention. In general, any typeof information about resource use, performance or other characteristicscan be used.

[0176] As mentioned, a preferred embodiment of the invention uses twotypes of intelligence objects called System Level Object (SLOs) andTransactional Level Objects (TLOs). In a preferred embodiment, SLOs arethe most commonly deployed intelligence object. Both SLOs and TLOsperform similar information gathering duties, but TLOs have theadditional responsibility of providing statistics for any servers wherespecial hosts (i.e., programs that provide data access and securitybetween an application and a database) are set up. Note that a “host” or“host computer” can be any digital processing hardware device, orsoftware process, that can perform a function on data in a network.

[0177] Before system optimization can be determined, the value of eachnode must first be measured. In order to collect these measurements,intelligence objects (IOs) are deployed across a DASPO network. Theseintelligence objects gather statistics on the processes and system loadsthat are generated at each server node. The most commonly deployed IO isthe System Level Object (SLO).

[0178] SLOs can be installed on remote computers from a central pointand is able to work across MS-Windows and TCP/IP networks. Installationscan be made on computers running Windows 95/98, Windows NT, Windows2000, Linux and Solaris UNIX. Depending on the platform, configurationand available services on the target machine, installations take placeby means of ftp, telnet, network shared drives and/or DCOM.

[0179] The installation process consists of four main stages as follows:(1) Selecting target nodes; (2) Specifying server general settings (3)Specifying file-transfer and remote-execution settings for each node and(4) Executing the installation procedure.

[0180] The remote installation mechanism is built around a Windowsapplication and a set of auxiliary files that are actually moved to thetarget computers to perform the installation. The remote installationmechanism consists of two parts—one for transferring files to theserver, and another to launch the installation process on the remoteserver. For UNIX/Linux platforms, SLO is installed as a daemon. ForWindows-based platforms, SLO is installed as a regular applicationincluded in the Startup folder for every user.

[0181]FIG. 5N shows the SLO Deployment and Installation window.

[0182] In the Deployment and Installation window, all available networknodes are displayed in the left-hand Computer column. Nodes that arescheduled to have SLO installed will appear in the right-hand computercolumn.

[0183] Select All allows the quick selection of all the nodes in theleft-hand Computer column. Invert Selection is used when a long list ofnodes is to be added for SLO installation. It is often easier to selectthe nodes in the left-hand Computer column that that aren't wanted andthen press the Invert Selection button. Any selections that have beenmade will then be inverted. In other words, checked boxes will becomeunchecked and vice-versa.

[0184] Deselect All removes all checkmarks from the nodes selected inthe left-hand Computer column. The Add button, adds nodes that have beenselected in the left-hand Computer column and adds them to the SLOinstallation list. Nodes in the right-hand window that have beenselected for SLO installation in the network can be removed by beingselected and then clicking on the Remove button. Once the desired nodesare selected, the Install button is pressed to start the SLO deploymentprocess.

[0185] Once nodes have been selected for SLO installation, the RemoteSLO Setup window, shown in FIG. 5O, opens to allow specification ofserver general settings.

[0186] Specification of server general settings defines the operatingsystem, file-transfer and remote-execution mechanisms for each node.(Note: nodes are referred to as Remote Servers in this window.)Selecting different file-transfer and remote-execution mechanismsactivates corresponding tabs which appear behind the General Settingstab. These new tabs can require separate configuration. Any changes thatare made in the General Settings tab are reflected in the list of nodesin the left-hand Remote Server field.

[0187] In the preferred embodiment, restrictions apply during thisportion of the SLO setup. For example, DCOM is only available to Windowsplatforms. In some cases, selecting None for an operation mechanism canmake sense. For example, if the corresponding files are already placedon a node (due to a previous attempt to install or because common drivesare used), only remote execution is required.

[0188] FIGS. 5P-S illustrate specifying controls and parameters for filetransfer and remote execution functions.

[0189] Depending on the file-transfer and remote-execution mechanismsthat were selected in previous steps, one or more new tabs will appearbehind the General Settings tab. The File-Transfer Settings for FTP taballow specification of the FTP usemame and password (if applicable) andthe FTP destination directory. By default the Anonymous usemame and theHome directory are set. The File-Transfer Settings for Shared NetworkDrives allows a Destination Folder to be selected, for example, whenusing a shared network drive to transfer files. This folder points to adrive (which is local to the node where SLO will be installed) that isshared along the network and mapped locally (at a central point). Commonfunctionalities, such as mapping a network drive or creating a newfolder are included. Note that file-transfer operations are carried outusing the current user credentials, which means the current user musthave enough rights to perform the operations.

[0190] When launching a remote setup using the telnet protocol, ausername and password are required. The Remote Execution Folder pointsto a local folder (on the remote server) where the setup files weremoved during the file-transfer step. The final way to launch SLO setupis using DCOM. During the file-transfer step, all necessary files weresent to a local folder on the remote server. The complete path for thisfolder should be typed into the Local path in remote computer” field.DCOM allows remote processes to be executed using different usercredentials. This parameter is selected in the DCOM User field.

[0191] For a successful execution of the remote setup, the selected usermust have rights to launch applications and access disk services throughDCOM on the remote server. In terms of DCOM security, this means theuser (or the group the user belongs to) must be listed in the “DefaultAccess Permissions” (with Allow Access permission) and “Default LaunchPermissions” (with “Allow Launch” permission). These lists can be seenand modified by executing the configuration application for DCOM andselecting the “Default Security” tab. For more information consult yourDCOM documentation.

[0192] Once the parameters are defined for each server, the installationprocess can begin. To start the installation, the user selects apredetermined icon or button on the user interface. Once theinstallation process is launched, SLO files are transferred and launchedfor each specified node. Results, errors and notifications can be viewedunder the Results tab as the installation is in progress.

[0193] Although the present invention has been discussed with respect tospecific embodiments, these embodiments are merely illustrative, and notrestrictive, of the invention. For example, although the invention isdiscussed primarily with reference to multi-tiered, or n-tiered,systems; it should be apparent that aspects of the invention can be usedwith any type of processing system even where the architecture does notinclude multiple tiers. Aspects of the invention can also be applied tostand-alone systems, or systems that are not considered networks.

[0194] Thus, the scope of the invention is to be determined solely bythe appended claims.

What is claimed is:
 1. A method for monitoring the performance of adigital networked system, wherein the system includes first and secondplatforms, the method comprising generating a first value indicating acharacteristic of operation of the first platform; transferring thefirst value to the second platform; obtaining a second value indicatinga characteristic of operation of the second platform; and combining thefirst and second values into a composite value by adjusting one of thefirst or second values to account for a difference in operationcharacteristics between the first and second platforms.
 2. The method ofclaim 1, wherein the difference in operation includes differences in theuse of interrupts in processors in the first and second platforms. 3.The method of claim 1, wherein the difference in operation includesdifferences in the use of threads in the first and second platforms. 4.The method of claim 1, wherein the difference in operation includesdifferences in the use of forked processes in the first and secondplatforms.
 5. The method of claim 1, wherein the difference in operationincludes differences in memory management in the first and secondplatforms.
 6. The method of claim 1, wherein the first and secondplatforms use different types of operating systems.
 7. The method ofclaim 1, wherein the first and second platforms use different types ofcentral processing units.
 8. The method of claim 1, wherein the firstand second platforms support different types of operating environments.